package com.jiashihui.schema_lgorithm.schema.memento;

/**
 * @author jiashihui
 * @describe: 备忘录模式测试类
 * @date 2019/03/15
 *
 * 保存一个对象的某个状态，以便在适当的时候恢复对象(备忘录模式更确切的描述应该是"备份-恢复"模式)
 */
public class MementoTest {
    public static void main(String[] args) {
		/* 原始类 */
        Original original = new Original("阅读KK的《必然》");

		/* 创建备忘录 */
        Storage storage = new Storage(original.createMemento());

		/* 修改原始类的值 */
        System.out.println("修改之前，原始类的值为： " + original.getValue());
        original.setValue("阅读Ray Kurzweil的《奇点临近》");
        System.out.println("修改之后，原始类的值为： " + original.getValue());

		/* 恢复原始类的值 */
        original.restoreMemento(storage.getMemento());
        System.out.println("恢复之后，原始类的值为： " + original.getValue());
    }
}
